Boot memory is used for processor startup. The processor begins by retrieving a command at an initial boot address and then progressively retrieves object code until it is configured. There are many circumstances where the source code contains a secret that must be protected from unauthorized users and third parties. For example, an authentication procedure may be performed between two parties where each party proves possession of a shared secret—once either party proves to the other that it is in possession of the shared secret, the devices proves to be a trusted party. If the shared secret is compromised, unauthorized parties may be authenticated, which destroys desired security. If the object code is stored as clear text, then such a shared secret could be compromised by simply reading the non-volatile memory at the proper address.
Accordingly, there is a need in the art for encryption devices and methods for protecting sensitive information that is stored in object code.